/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package seminario.bean;

import java.io.Serializable;
import java.util.List;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import org.primefaces.model.UploadedFile;
import seminario.entidade.Participante;
import seminario.entidade.Usuario;
import seminario.rn.ParticipanteRN;
import seminario.util.BeanUtil;
import seminario.util.UploadUtil;

/**
 *
 * @author bpmlab
 */
@ManagedBean
@RequestScoped
public class ParticipanteBean implements Serializable {

    private final ParticipanteRN rn = new ParticipanteRN();
    private Participante participante = new Participante();
    private List<Participante> participantes;
    private UploadedFile file;

    public ParticipanteBean() {
    }

    public String enviar() {
        participante.setResumo(UploadUtil.upload(file));
        if (rn.salvar(participante)) {
            BeanUtil.mensagem(FacesMessage.SEVERITY_INFO, "O seu formulário foi enviado!");
            return "index";
        } else {
            BeanUtil.mensagem(FacesMessage.SEVERITY_FATAL, "Erro! Não foi possivel enviar seu formulário");
            return null;
        }
    }

    public void remover() {
        if (rn.remover(participante)) {
            BeanUtil.mensagem(FacesMessage.SEVERITY_INFO, "O seu participante foi removido!");
        } else {
            BeanUtil.mensagem(FacesMessage.SEVERITY_FATAL, "Erro! Não foi possivel remover o participante");
        }
    }

    public String meusDados() {
        Object obj = BeanUtil.lerDaSessao("usuarioLogado");
        if (obj == null) {
            return null;
        } else {
            Usuario usuario = (Usuario) obj;
            participante = usuario.getParticipante();
            return "participante";
        }
    }

    public List<Participante> getParticipantes() {
        participantes = rn.obterTodos();
        return participantes;
    }

    public Participante getParticipante() {
        return participante;
    }

    public void setParticipante(Participante participante) {
        this.participante = participante;
    }

    public UploadedFile getFile() {
        return file;
    }

    public void setFile(UploadedFile file) {
        this.file = file;
    }

}
